package cn.com.nes.site.controller.project.vo;

import cn.com.nes.site.entity.vo.BaseVO;
import cn.com.nes.site.service.project.bo.SaveProjectServiceUserBO;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.beans.BeanUtils;

import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 新增项目施工人员VO
 *
 * @Author: ShenWei
 * @Date: 2024/07/11/17:10
 */
@Data
public class SaveProjectServiceUserVO extends BaseVO {

    /**
     * id
     */
    private Long id;

    /**
     * 项目uuid
     */
    @NotNull(message = "项目uuid")
    private String projectUuid;

    /**
     * 部门ID
     */
    @NotNull(message = "部门ID")
    private String departmentId;

    /**
     * 公司id
     */
    @NotNull(message = "公司id")
    private String companyId;

    /**
     * 项目服务人员类别
     */
    @NotNull(message = "项目服务人员类别")
    private Integer serviceUserType;

    /**
     * 服务人员id
     */
    @NotNull(message = "服务人员id")
    private Long serviceUserId;

    /**
     * 行政区划代码列表
     */
    private List<String> areaCodeList;

    /**
     * 联系电话
     */
    @NotEmpty(message = "联系电话")
    private String phone;

    /**
     * 启用标识 默认启用
     */
    private Integer enableIdentity = 0;

    public SaveProjectServiceUserBO convertToBo() {
        SaveProjectServiceUserBO bo = new SaveProjectServiceUserBO();
        BeanUtils.copyProperties(this, bo);
        bo.setAreaCodeList(this.getAreaCodeList().stream().distinct().collect(Collectors.toList()));
        return bo;
    }

}
